package com.cloudcc.mobile.dao;

import java.util.List;

import com.cloudcc.cloudframe.net.RequestListener;
import com.cloudcc.cloudframe.net.ResultCallBack;
import com.cloudcc.mobile.entity.ChatUser;
import com.cloudcc.mobile.entity.CoworkerEntity;
import com.cloudcc.mobile.entity.OperateFollowRelation;
import com.cloudcc.mobile.event.CoworkerEventList.CoworkerListEvent;

/**
 * 联系人通讯录
 * 
 * @author seven
 * 
 */
public interface ContactEngine {

	/**
	 * @deprecated 获取 通讯录
	 * @param listener
	 */
	void getContacts(ResultCallBack<List<CoworkerEntity>> listener);

	/**
	 * 同步获取通讯录
	 * 
	 * @param listener
	 */
	void getContactsSync(ResultCallBack<List<CoworkerEntity>> listener);

	/**
	 * @param listener
	 */
	void getContactList(ResultCallBack<List<CoworkerEntity>> listener);

	/**
	 * 获得联系人信息 支持分页数据
	 * 
	 * @param page
	 *            页数
	 * @param pageNum
	 * @param event
	 */
	void getContactList(int page, int pageNum, CoworkerListEvent event);
	void getContactListNew(String code, CoworkerListEvent event);
	void getContactListGuanzhu(CoworkerListEvent event);

	/**
	 * 获取通讯录某一个用户的详情 是chatter接口 注意一下
	 * 
	 * @param userId
	 * @param listener
	 * 
	 */
	void getUserInfoChatter(String userId, ResultCallBack<ChatUser> listener);

	/**
	 * 关注或者追随某个人
	 * 
	 * @param operation
	 * @param listener
	 */
	void followContact(OperateFollowRelation operation, RequestListener listener);

	/**
	 * 获取下属列表
	 * 
	 * @param event
	 */
	void getSubContacts(CoworkerListEvent event);
	/**
	 * 获取关注列表
	 * 
	 * @param event
	 */
	void getSubContactsGZ(CoworkerListEvent event);

}
